#include "PiezaDisco.h"
#include <math.h>
#define PI 3.14159265

PiezaDisco::PiezaDisco(GLfloat angulo, GLfloat largo)
	{
	this->cilindro = new Cilindro(20);
	this->angulo = angulo;
	this->largo = largo;

	this->largo_pieza_vert = 2 * largo * sin(this->angulo * PI/360);
	}

PiezaDisco::~PiezaDisco()
	{
	delete this->cilindro;
	}

void PiezaDisco::dibujar(int tiempoDurEscena)
	{		
	glPushMatrix();
	// Traslacion sobre el eje x (posicionamiento de la pata2).
	glTranslatef(this->largo, 0.0, 0.0);
	// Rotacion sobre el eje x
	glRotatef(this->angulo / 2, 0.0, 0.0, 1.0);
	// Escalado de la pieza
	glScalef(-0.10,this->largo_pieza_vert,-0.10);
	// Rotacion para que quede sobre el eje y.
	glRotatef(- 90, 1.0, 0.0, 0.0);
	this->cilindro->dibujar(tiempoDurEscena);
	glPopMatrix();
	
	glPushMatrix();
	// Traslacion sobre el eje x (posicionamiento de la pata2).
	glTranslatef(this->largo * POS_PATA2, 0.0, 0.0);
	// Rotacion sobre el eje x
	glRotatef(this->angulo / 2, 0.0, 0.0, 1.0);
	// Escalado de la pieza
	glScalef(-0.10,this->largo_pieza_vert * POS_PATA2,-0.10);
	// Rotacion para que quede sobre el eje y.
	glRotatef(- 90, 1.0, 0.0, 0.0);
	this->cilindro->dibujar(tiempoDurEscena);
	glPopMatrix();

	glPushMatrix();
	// Escalado estirado sobre x (xMax = 8), afinado sobre y, z.
	//glScalef(8.0, -0.10, -0.50);
	glScalef(this->largo,-0.10,-0.10);
	// Rotacion para que quede sobre el eje x.
	glRotatef(90, 0.0, 1.0, 0.0);
	this->cilindro->dibujar(tiempoDurEscena);
	glPopMatrix();
	
	}